package com.cyzy.utils;

import org.mindrot.jbcrypt.BCrypt;

public class HashUtil {

    /**
     * 对原始密码进行哈希处理。
     * @param password 原始密码
     * @return 返回加密后的密码
     */
    public static String hashPassword(String password) {
        // 使用gensalt()生成随机盐，默认log_rounds为10
        return BCrypt.hashpw(password, BCrypt.gensalt());
    }

    public static String hashPassword(String password, int logRounds) {
        // 使用gensalt(logRounds)生成带有特定计算复杂度的随机盐
        return BCrypt.hashpw(password, BCrypt.gensalt(logRounds));
    }

    /**
     * 验证提供的密码是否与已存储的哈希匹配。
     * @param password 提供的待验证密码
     * @param hashedPassword 存储的哈希密码
     * @return 如果密码匹配返回true，否则返回false
     */
    public static boolean checkPassword(String password, String hashedPassword) {
        return BCrypt.checkpw(password, hashedPassword);
    }


}